/**
 * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
 */
package com.jeeplus.modules.fee.entity;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.jeeplus.common.utils.excel.annotation.ExcelField;
import com.jeeplus.core.persistence.DataEntity;
import com.jeeplus.modules.sys.entity.Office;

import java.util.Date;

/**
 * 应付结算单明细Entity
 * @author weisong
 * @version 2017-09-18
 */
public class PayableDetail extends DataEntity<PayableDetail> {
	
	private static final long serialVersionUID = 1L;
	private Payable feePayable;		// 应付账款id
	private Detail feeDetail;		// 费用明细
	private Date busyDate;		// 业务日期
	private Agreement feeAgreement;		// 计费协议
	private Type feeType;		// 费用类型
	private Double payMoney;		// 计费金额
	private Double clearingMoney;		// 结算金额
	private Office logistics;		// 物流组织
	
	public PayableDetail() {
		super();
	}

	public PayableDetail(String id){
		super(id);
	}

	@ExcelField(title="应付账款id", align=2, sort=6)
	public Payable getFeePayable() {
		return feePayable;
	}

	public void setFeePayable(Payable feePayable) {
		this.feePayable = feePayable;
	}
	
	@ExcelField(title="费用明细", align=2, sort=7)
	public Detail getFeeDetail() {
		return feeDetail;
	}

	public void setFeeDetail(Detail feeDetail) {
		this.feeDetail = feeDetail;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	@ExcelField(title="业务日期", align=2, sort=8)
	public Date getBusyDate() {
		return busyDate;
	}

	public void setBusyDate(Date busyDate) {
		this.busyDate = busyDate;
	}
	
	@ExcelField(title="计费协议", align=2, sort=9)
	public Agreement getFeeAgreement() {
		return feeAgreement;
	}

	public void setFeeAgreement(Agreement feeAgreement) {
		this.feeAgreement = feeAgreement;
	}
	
	@ExcelField(title="费用类型", align=2, sort=10)
	public Type getFeeType() {
		return feeType;
	}

	public void setFeeType(Type feeType) {
		this.feeType = feeType;
	}
	
	@ExcelField(title="计费金额", align=2, sort=11)
	public Double getPayMoney() {
		return payMoney;
	}

	public void setPayMoney(Double payMoney) {
		this.payMoney = payMoney;
	}
	
	@ExcelField(title="结算金额", align=2, sort=12)
	public Double getClearingMoney() {
		return clearingMoney;
	}

	public void setClearingMoney(Double clearingMoney) {
		this.clearingMoney = clearingMoney;
	}
	
	@ExcelField(title="物流组织", fieldType=Office.class, value="logistics.name", align=2, sort=13)
	public Office getLogistics() {
		return logistics;
	}

	public void setLogistics(Office logistics) {
		this.logistics = logistics;
	}
	
}